#pragma once

#include <memory>
#include <vector>

#include "../../inc/TopoDS/OMIT_MeshForwardDecl.h"
#include "OMIT_MeshAttrMacros.h"

#include "OMIT_MeshIO.h"

template <class T>
class vtkSmartPointer;

class vtkPolyData;

namespace OMIT_NAMESPACE
{
    namespace DataIO
    {
        template <typename Traits>
        vtkSmartPointer<vtkPolyData> ConvertToVTKDS(std::shared_ptr<TMesh<Traits>> pMesh,
            OMIT_MESHATTR_OUTPUT_NUMOPS vertAttrOPs = OMIT_MESHATTR_OUTPUT_NUMOPS{ 0 },
            OMIT_MESHATTR_OUTPUT_NUMOPS faceAttrOPs = OMIT_MESHATTR_OUTPUT_NUMOPS{ 0 });

        //template <typename Traits>
        //vtkSmartPointer<vtkPolyData> ConvertToVTKDS(const std::vector<std::shared_ptr<TMesh<Traits>>>& pMeshList,
        //    OMIT_MESHATTR_OUTPUT_NUMOPS vertAttrOPs = OMIT_MESHATTR_OUTPUT_NUMOPS{ 0 },
        //    OMIT_MESHATTR_OUTPUT_NUMOPS faceAttrOPs = OMIT_MESHATTR_OUTPUT_NUMOPS{ 0 });
    }
}

#include "OMIT_MeshUtil.inl"